<?php

function meses(){
	$Meses = array();
	$Meses[1] = 'Enero';
	$Meses[2] = 'Febrero';
	$Meses[3] = 'Marzo';
	$Meses[4] = 'Abril';
	$Meses[5] = 'Mayo';
	$Meses[6] = 'Junio';
	$Meses[7] = 'Julio';
	$Meses[8] = 'Agosto';
	$Meses[9] = 'Septiembre';
	$Meses[10] = 'Octubre';
	$Meses[11] = 'Noviembre';
	$Meses[12] = 'Diciembre';
	return $Meses;
}

function dias(){
	$dias[1] = 'Lunes';
	$dias[2] = 'Martes';
	$dias[3] = 'Miércoles';
	$dias[4] = 'Jueves';
	$dias[5] = 'Viernes';
	$dias[6] = 'Sábado';
	$dias[7] = 'Domingo';
}


function redirect($url) {
	echo "<script type=\"text/javascript\">";
	echo " var pagina = '".$url."';";
	echo " document.location.href=pagina;";
	echo "</script>";
    exit();    
}


/*******************************************************************************************
* Condicion iif
*******************************************************************************************/
function iif($condition,$istrue,$isfalse) {
    if ($condition) {
       return $istrue;
    } else {
       return $isfalse;
    }
}


/*******************************************************************************************
* Print_r elegante
*******************************************************************************************/
function pr($array,$die=null) {
	echo '<div style="width:100%;text-align:left; align:left;text-shadow:none;"><pre>';print_r($array); echo "</pre></div>";
	if (isset($die) AND $die==1) {die();}
}


/***************************************************************************************
* Request_var
****************************************************************************************/
function request($variable, $default, $formato=null, $limite=null){
	
	if ( isset($_POST[$variable]) and !empty($_POST[$variable]) ) {
		$valor = $_POST[$variable];

	} elseif ( isset($_GET[$variable]) ) {
		$valor = $_GET[$variable];
	} else {
		$valor = $default;
	}

	switch ($formato){
		case 'html':
			$valor = trim(htmlspecialchars($valor,ENT_QUOTES,'UTF-8')); 
			break;
		case 'ltrim':
			$valor = trim(strtolower($valor));		
			break;
		case 'trim':
			$valor = trim($valor);		
			break;
		case 'int':
			$valor = intval(($valor));		
			break;
			
	}

	if( $limite>0 ) { $valor = substr($valor,0,$limite); }
	
	return $valor;
}




/****************************************************************************************
* cb_fechas arma combo de fechas 
*******************************************************************************************/
function cb_fechas($fecha=0,$variable='',$disabled=false,$null=false){
    if ($fecha==0) { 
		if($null==true){
			$fecha = 0;
			$dia = 0;
			$mes = 0;
			$ano = 0;
			
		} else {
			$fecha=time();
			$dia = date("d",$fecha);
			$mes = date("m",$fecha);
			$ano = date("Y",$fecha);
			
		}
	} else {
		$dia = date("d",$fecha);
		$mes = date("m",$fecha);
		$ano = date("Y",$fecha);
	}


    $xmes[1] = 'Enero';
    $xmes[2] = 'Febrero';
    $xmes[3] = 'Marzo';
    $xmes[4] = 'Abril';
    $xmes[5] = 'Mayo';
    $xmes[6] = 'Junio';
    $xmes[7] = 'Julio';
    $xmes[8] = 'Agosto';
    $xmes[9] = 'Septiembre';
    $xmes[10] = 'Octubre';
    $xmes[11] = 'Noviembre';
    $xmes[12] = 'Diciembre';

    if($disabled==true){ $xdisa = "disabled=disabled"; } else { $xdisa="";}

    
    $cb_dia = '<select name="'.$variable.'_dia" id="'.$variable.'_dia" style="line-height:20px; padding:3px; width:60px;" '.$xdisa.'>';
	if($null==true){$cb_dia.= '<option value="0" >--</option>';   }
    for ( $i = 1 ; $i <= 31 ; $i ++) {
		if($dia==$i){$sel = "selected=selected";} else {$sel="";}
		$z = substr("00".$i,-2);
		$cb_dia.= '<option value="'.$z.'" '.$sel.'>'.$z.'</option>';   
	}    
    $cb_dia.= '</select>';

    $cb_mes = '<select name="'.$variable.'_mes" id="'.$variable.'_mes" style="line-height:20px; padding:3px;width:110px;" '.$xdisa.'>';
	if($null==true){$cb_mes.= '<option value="0" >--</option>';   }
    for ( $i = 1 ; $i <= 12 ; $i ++) {
		$z = substr("00".$i,-2);
		if($mes==$i){$sel = "selected=selected";} else {$sel="";}
		$cb_mes.= '<option value="'.$z.'" '.$sel.'>'.$xmes[$i].'</option>';   
    }    
    $cb_mes.= '</select>';

    $desde = date("Y",time())-1;
    $hasta = date("Y",time())+5;
    $cb_ano = '<select name="'.$variable.'_ano" id="'.$variable.'_ano" style="line-height:20px; padding:3px;width:70px;" '.$xdisa.'>';
	if($null==true){$cb_ano.= '<option value="0" >--</option>';   }
    for ( $i = $desde ; $i <= $hasta ; $i ++) {
		if($ano==$i){$sel = "selected=selected";} else {$sel="";}
		$cb_ano.= '<option value="'.$i.'" '.$sel.'>'.$i.'</option>';   
    }    
    $cb_ano.= '</select>';
    
    $retorna = $cb_dia."-".$cb_mes.'-'.$cb_ano;
    return $retorna;
}

function saca_espacios($url=null){
	$nueva = $url;
	$acentos = array("ñ","á", "é", "í","ó","ú"," ");
	$sin   = array("n","a", "e", "i","o","u","_");
	$newphrase = strtolower(str_replace($acentos, $sin, $nueva));
	return $newphrase;
}


function fecha_larga($fecha=0){
    if ($fecha==0){ $fecha=time();}

    $dia = date("d",$fecha);
    $m   = date("m",$fecha)*1;
    $ano = date("Y",$fecha);

    $mes[1] = 'Enero';
    $mes[2] = 'Febrero';
    $mes[3] = 'Marzo';
    $mes[4] = 'Abril';
    $mes[5] = 'Mayo';
    $mes[6] = 'Junio';
    $mes[7] = 'Julio';
    $mes[8] = 'Agosto';
    $mes[9] = 'Septiembre';
    $mes[10] = 'Octubre';
    $mes[11] = 'Noviembre';
    $mes[12] = 'Diciembre';

    $fecha_larga = "$dia de {$mes[$m]} de $ano";
    return $fecha_larga;
    die();
}

/*
function hace_thumb($foto,$path){
	ini_set("memory_limit","64M");
    $tn =  time().'_'.$foto;;
	if (strstr($foto,'.gif')){
		copy ($path.$foto,CREA_TN.$tn);
		$dato['ancho'] = 0;
		$dato['alto']  = 0;
	} else {
		$original = imagecreatefromjpeg($path.$foto);
		$thumb = imagecreatetruecolor(150,150); // Lo haremos de un tamaño 150x150
		$dato['ancho'] = imagesx($original);
		$dato['alto'] = imagesy($original);
		imagecopyresampled($thumb,$original,0,0,0,0,150,150,$ancho,$alto);
		imagejpeg($thumb,CREA_TN.$tn,90); // 90 es la calidad de compresión
	}
    $dato['tn'] = $tn;
    return $dato;
}
*/

function sanitize($texto,$saca_espacios=0) {
	$n_texto=str_replace("á","a",$texto);
	$n_texto=str_replace("é","e",$n_texto);
	$n_texto=str_replace("í","i",$n_texto);
	$n_texto=str_replace("ó","o",$n_texto);
	$n_texto=str_replace("ú","u",$n_texto);
    $n_texto=str_replace("'","",$n_texto);
    $n_texto=str_replace('"',"",$n_texto);
    if($saca_espacios==0) {
        $n_texto=str_replace("/","",$n_texto);
        $n_texto=str_replace("\\","",$n_texto);
        $n_texto=saca_espacios($n_texto);    
    }
	return $n_texto;
}


function mensaje(){
    /* tipo = success | error | warning | information*/
    if (isset($_SESSION['Mensaje']) and !empty($_SESSION['Mensaje']['mensaje'])) {
        $Mensaje = $_SESSION['Mensaje'];
        $tipo      = iif(empty($Mensaje['tipo'])     , 'information', $Mensaje['tipo']      );
        $mensaje   = iif(empty($Mensaje['mensaje'])  , ''           , $Mensaje['mensaje']   );
        $autoclose = iif(empty($Mensaje['autoclose']), 'false'       , $Mensaje['autoclose'] );
        $duracion  = iif(empty($Mensaje['duracion']) , '10'         , $Mensaje['duracion']  );
        
        $mensaje = "<script type='text/javascript'>
                showNotification({
                    message: '$mensaje',
                    type: '$tipo',
                    autoClose: '$autoclose',
                    duration: $duracion                                        
                });
            </script>";
        $_SESSION['Mensaje'] = '';    
        return $mensaje;    
    } else {
        return '';
    }
}


function mensaje_ok($texto){
    $a = '<div style="width:100%;background-color:lightblue;border:2px solid blue;font-size:14px;font-weight;bold;text-align:center;margin-top:5px;padding-top:5px;color:blue;">';
	$a.= $texto;
    $a.="</div>";
    return $a;
}
function mensaje_error($texto){
    $a = '<div style="width:100%;background-color:#F9DFE8;border:2px solid #EE5784;font-size:14px;font-weight;bold;text-align:center;margin-top:5px;padding-top:5px;color:#EE5784;">';
	$a.= $texto;
    $a.="</div>";
    return $a;
}


function esta_login_alojamiento(){
	
	global $db;
    if (isset($_SESSION['login']) and $_SESSION['login'] > 0) { 
        $LoginAlojamiento = true;
		$_SESSION['Login']['Mensajes'] = busca_mensajes('a',$_SESSION['login']);
		
		
    } else {
        $LoginAlojamiento = false;
    }
    return $LoginAlojamiento;
}

//-------------------------------------------------------------------------------
//                                                      Está logueado el usuario?
//-------------------------------------------------------------------------------
function esta_login_usuario(){
	global $db;
	
	$LoginUsuario = false;
    
	if (isset($_SESSION['LoginUsuario']) and $_SESSION['LoginUsuario']['id'] > 0) { 
    
		$LoginUsuario = true;
		$_SESSION['LoginUsuario']['Mensajes'] = busca_mensajes('u',$_SESSION['LoginUsuario']['id']);
		
    }
    return $LoginUsuario;
}

//---------------------------------------------------------------------------------------
//                                                              Tiene Mensajes sin leer??
//---------------------------------------------------------------------------------------
function busca_mensajes($quien='u',$id=0){
	global $db;
	
	if ($quien=='u'){
		//----------- El usuario
		$sql = "select count(id) as cuantos from posible_reserva where leido_cliente='0' and usuario_id='$id'";
		$rs  = $db->Execute($sql);
		$zz  = $rs->FetchRow();
		$cuantos_mensajes = iif($zz and $zz['cuantos']>0,$zz['cuantos'],0);
		
	} else {
		//--------------- El Alojamietno
		//--------------------------------------------------------------------------------------------------
		//                                                     Traigo todos los alojamientos de este usuario
		//--------------------------------------------------------------------------------------------------
		$gestion = iif( $_SESSION['admin']==1, " or gestionamos='1' ", '');
		$sql = "select id,titulo,familia_id,parent_id,gestionamos from productos where id='$id' or parent_id='$id' $gestion order by titulo ASC";

		$rs  = $db->CacheExecute($sql);
		$TodosMisAlojamientos = $rs->GetRows();

		$MisAlojamientos = array();
		if ($TodosMisAlojamientos){
			foreach($TodosMisAlojamientos as $tma){
				$MisAlojamientos[]= $tma['id'];
			}
		} else {
			$MisAlojamientos[]= $id;
		}
			
		$x_mis_alojamientos = implode(',',$MisAlojamientos);
		$sql = "select count(id) as cuantos	from posible_reserva where producto_id IN ( $x_mis_alojamientos ) and leido_vendedor='0'";

		$rs  = $db->CacheSelectLimit($sql,1);
		$zz  = $rs->FetchRow();
		$cuantos_mensajes = iif($zz and $zz['cuantos']>0,$zz['cuantos'],0);
	
	}
	return $cuantos_mensajes;
}

function busco_categoria_por_url($cadena_busqueda=''){
    global $db;
    $idioma_default = $_SESSION['idioma_default'];    
    $idioma_elegido = $_SESSION['idioma'];
    
	$cond 	= "select * from categorias where ( urlamigable1='$cadena_busqueda' or urlamigable2='$cadena_busqueda' or urlamigable3='$cadena_busqueda' or urlamigable4='$cadena_busqueda' or urlamigable5='$cadena_busqueda' ) and activo=1";
	$rs 	= $db->CacheSelectLimit($cond,1);
	
	$Categoria	= $rs->FetchRow();
    if(!empty($Categoria)) {
        if ( empty($Categoria['titulo'.$idioma_elegido])   ) { $Categoria['titulo']   = $Categoria['titulo'.$idioma_default];   } else { $Categoria['titulo']   = $Categoria['titulo'.$idioma_elegido];  }
        if ( empty($Categoria['cuerpo'.$idioma_elegido])   ) { $Categoria['cuerpo']   = $Categoria['cuerpo'.$idioma_default];   } else { $Categoria['cuerpo']   = $Categoria['cuerpo'.$idioma_elegido];  }
        if ( empty($Categoria['keywords'.$idioma_elegido]) ) { $Categoria['keywords'] = $Categoria['keywords'.$idioma_default]; } else { $Categoria['keywords'] = $Categoria['keywords'.$idioma_elegido];}
        if ( empty($Categoria['urlamigable'.$idioma_elegido]) ) { $Categoria['urlamigable'] = $Categoria['urlamigable'.$idioma_default]; } else { $Categoria['urlamigable'] = $Categoria['urlamigable'.$idioma_elegido];}
        $Categoria['titulo']    = htmlspecialchars_decode($Categoria['titulo'],ENT_QUOTES);
        $Categoria['cuerpo']    = htmlspecialchars_decode($Categoria['cuerpo'],ENT_QUOTES);
    }
    return $Categoria;
}

function busco_categoria_por_id( $id=0 ){

    global $db;
    $idioma_default = $_SESSION['idioma_default'];    
    $idioma_elegido = $_SESSION['idioma'];
    $id = intval($id);

	$rs 	    = $db->CacheSelectLimit("select * from categorias where id='$id' ",1);
    $Categoria	= $rs->FetchRow();

    if ( empty($Categoria['titulo'.$idioma_elegido])   ) { $Categoria['titulo']   = $Categoria['titulo'.$idioma_default];   } else { $Categoria['titulo']   = $Categoria['titulo'.$idioma_elegido];  }
    if ( empty($Categoria['cuerpo'.$idioma_elegido])   ) { $Categoria['cuerpo']   = $Categoria['cuerpo'.$idioma_default];   } else { $Categoria['cuerpo']   = $Categoria['cuerpo'.$idioma_elegido];  }
    if ( empty($Categoria['keywords'.$idioma_elegido]) ) { $Categoria['keywords'] = $Categoria['keywords'.$idioma_default]; } else { $Categoria['keywords'] = $Categoria['keywords'.$idioma_elegido];}
    if ( empty($Categoria['urlamigable'.$idioma_elegido]) ) { $Categoria['urlamigable'] = $Categoria['urlamigable'.$idioma_default]; } else { $Categoria['urlamigable'] = $Categoria['urlamigable'.$idioma_elegido];}
    $Categoria['titulo']    = htmlspecialchars_decode($Categoria['titulo'],ENT_QUOTES);
    $Categoria['cuerpo']    = htmlspecialchars_decode($Categoria['cuerpo'],ENT_QUOTES);
    return $Categoria;
}


function listar_categoria($id=0, $limite=5,$url_categoria='', $orden='orden DESC'){
    global $db, $idioma_elegido, $idioma_default;

    if (empty($url_categoria)){
        $categoria = busco_categoria_por_id($id);
        $url_categoria = $categoria['urlamigable'];        
    }

    settype($id, 'integer');

	$cond 	 = "select * from publicaciones where categoria_id='$id' and activo=1 order by $orden";
    $rs      = $db->CacheSelectLimit($cond,$limite);
//	$rs 	 = $db->SelectLimit($cond,$limite);
    $retorno = $rs->GetRows();
    
    if($retorno){
        foreach($retorno as $clave => $valor) {
            
            if ( empty($valor['titulo'.$idioma_elegido])   )    { 
				$xtitulo = $valor['titulo'.$idioma_default];      
			} else { 
				$xtitulo = $valor['titulo'.$idioma_elegido];  
			}
			
            if ( empty($valor['copete'.$idioma_elegido])   )    { 
				$retorno[$clave]['copete'] = $valor['copete'.$idioma_default];      
			} else { 
				$retorno[$clave]['copete'] = $valor['copete'.$idioma_elegido];  
			}
			
            if ( empty($valor['contenido'.$idioma_elegido])   )    { 
				$retorno[$clave]['contenido'] = $valor['contenido'.$idioma_default];      
			} else { 
				$retorno[$clave]['contenido'] = $valor['contenido'.$idioma_elegido];  
			}            
			
            if ( empty($valor['urlamigable'.$idioma_elegido]) ) { 
				$retorno[$clave]['urlamigable'] = $valor['urlamigable'.$idioma_default]; 
			} else { 
				$retorno[$clave]['urlamigable'] = $valor['urlamigable'.$idioma_elegido];
			}
			
            if ( empty($valor['thumbs'.$idioma_elegido]) )      { 
				$retorno[$clave]['thumbs'] = $valor['thumbs'.$idioma_default];      
			} else { 
				$retorno[$clave]['thumbs'] = $valor['thumbs'.$idioma_elegido];
			}
			
            $retorno[$clave]['titulo']    = htmlspecialchars_decode($xtitulo,ENT_QUOTES);
            $retorno[$clave]['copete']    = htmlspecialchars_decode($retorno[$clave]['copete'],ENT_QUOTES);
            $retorno[$clave]['href'] = URL."/".$url_categoria."/".$retorno[$clave]['urlamigable'].".html";
        
        }        
    }
    
    
    return $retorno;
}

function muestra_en_home($categoria=0, $limite=5){
    global $db, $idioma_elegido;

    if ($categoria>0){ $cat=" and publicaciones.categoria_id='$categoria'";} else {$cat = '';}
    
    settype($id, 'integer');
	$cond 	 = "select publicaciones.*, categorias.urlamigable1 as cat_url from publicaciones left join categorias on 
                publicaciones.categoria_id = categorias.id 
                where home='1' and publicaciones.activo=1 $cat order by publicaciones.fecha DESC";
	$rs 	 = $db->CacheSelectLimit($cond,$limite);
    $retorno = $rs->GetRows();
    
    if($retorno){
        foreach($retorno as $clave => $valor) {
            
            if ( empty($valor['titulo'.$idioma_elegido])   )    { $retorno[$clave]['titulo']      = $valor['titulo'.$idioma_default];      } else { $retorno[$clave]['titulo']      = $valor['titulo'.$idioma_elegido];  }
            if ( empty($valor['copete'.$idioma_elegido])   )    { $retorno[$clave]['copete']      = $valor['copete'.$idioma_default];      } else { $retorno[$clave]['copete']      = $valor['copete'.$idioma_elegido];  }
            if ( empty($valor['urlamigable'.$idioma_elegido]) ) { $retorno[$clave]['urlamigable'] = $valor['urlamigable'.$idioma_default]; } else { $retorno[$clave]['urlamigable'] = $valor['urlamigable'.$idioma_elegido];}
            if ( empty($valor['thumbs'.$idioma_elegido])    )   { $retorno[$clave]['thumbs']      = $valor['thumbs'.$idioma_default];      } else { $retorno[$clave]['thumbs']      = $valor['thumbs'.$idioma_elegido];    }
            $retorno[$clave]['titulo']    = htmlspecialchars_decode($retorno[$clave]['titulo'],ENT_QUOTES);
            $retorno[$clave]['copete']    = htmlspecialchars_decode($retorno[$clave]['copete'],ENT_QUOTES);
            $retorno[$clave]['href'] = URL."/".$valor['cat_url']."/".$retorno[$clave]['urlamigable']."~".$retorno[$clave]['id'];
            if (empty($retorno[$clave]['thumbs'])) {
                $retorno[$clave]['thumbs'] = URL.'/archivos/images/nofoto.jpg';
            }
        
        }        
    }
    
    return $retorno;
}



function obtiene_destacados($categoria=0, $limite=5,$destacado=1){
    global $db, $idioma_elegido, $idioma_default;

    if ($categoria>0){ $cat=" and publicaciones.categoria_id='$categoria'";} else {$cat = '';}
    
    settype($id, 'integer');
	$cond 	 = "select publicaciones.*, categorias.urlamigable1 as cat_url from publicaciones left join categorias on 
                publicaciones.categoria_id = categorias.id 
                where destacado='$destacado' and publicaciones.activo=1 $cat order by publicaciones.orden DESC";
	$rs 	 = $db->CacheSelectLimit($cond,$limite);
    $retorno = $rs->GetRows();
    
    if($retorno){
        foreach($retorno as $clave => $valor) {
            
            if ( empty($valor['titulo'.$idioma_elegido])   )    { $retorno[$clave]['titulo']      = $valor['titulo'.$idioma_default];      } else { $retorno[$clave]['titulo']      = $valor['titulo'.$idioma_elegido];  }
            if ( empty($valor['copete'.$idioma_elegido])   )    { $retorno[$clave]['copete']      = $valor['copete'.$idioma_default];      } else { $retorno[$clave]['copete']      = $valor['copete'.$idioma_elegido];  }
            if ( empty($valor['urlamigable'.$idioma_elegido]) ) { $retorno[$clave]['urlamigable'] = $valor['urlamigable'.$idioma_default]; } else { $retorno[$clave]['urlamigable'] = $valor['urlamigable'.$idioma_elegido];}
            if ( empty($valor['thumbs'.$idioma_elegido])    )   { 
				$retorno[$clave]['thumbs']      = $valor['thumbs'.$idioma_default];      
			} else { 
				$retorno[$clave]['thumbs']      = $valor['thumbs'.$idioma_elegido];    
			}
            $retorno[$clave]['titulo']    = htmlspecialchars_decode($retorno[$clave]['titulo'],ENT_QUOTES);
            $retorno[$clave]['copete']    = htmlspecialchars_decode($retorno[$clave]['copete'],ENT_QUOTES);
            if ($valor['categoria_id'] > 2){
				$retorno[$clave]['href'] = URL."/".$valor['cat_url']."/".$retorno[$clave]['urlamigable']."~".$retorno[$clave]['id'];
			} else {
				$retorno[$clave]['href'] = URL."/".$retorno[$clave]['urlamigable']."~".$retorno[$clave]['id'];
			}
            if (empty($retorno[$clave]['thumbs'])) {
                $retorno[$clave]['thumbs'] = URL.'/archivos/images/nofoto.jpg';
            }
        
        }        
    }
    
    
    return $retorno;
}


function productos_destacados($limite=4, $modo=''){
    global $db, $Localidades, $Provincias;

	$familia_id = iif(isset($_SESSION['filtro']['familia']['id']), $_SESSION['filtro']['familia']['id'], 0);	
	$provincia  = iif(isset($_SESSION['filtro']['provincia']['id']), $_SESSION['filtro']['provincia']['id'], 0);	
	$ciudad     = iif(isset($_SESSION['filtro']['ciudad']['id']), $_SESSION['filtro']['ciudad']['id'], 0);	

	$cond_familia = $cond_provincia = $cond_localidad = '';
	
    if ($familia_id>0){ 
		$cond_familia   = " and productos.familia_id='$familia_id' "; 
		$cond_destacado = " destacado_categoria='1' ";
	} else {
		$cond_destacado = " destacado_home='1' ";
	}
    if ($provincia>0) { $cond_provincia = " and productos.provincia='$provincia' "; }
    if ($ciudad>0)    { $cond_localidad    = " and productos.localidad='$ciudad' "; }
		
	if(!empty($modo)) { 
		$orden = 'order by rand()';
	} else { 
		$orden = 'order by productos.orden DESC';
	}
	
    $cond = "select productos.*, familias.urlamigable1 as fam_url 
                from productos 
                left join familias on productos.familia_id = familias.id 
                where $cond_destacado
                    and productos.activo=1 
                    $cond_familia $cond_provincia $cond_localidad $orden";
    $rs      = $db->CacheSelectLimit($cond,$limite);
    $retorno = $rs->GetRows();

	if(!$retorno){
	
		$cond = "select productos.*, familias.urlamigable1 as fam_url 
					from productos 
					left join familias on productos.familia_id = familias.id 
					where $cond_destacado
						and productos.activo=1 
						$cond_familia $cond_provincia $orden";
		$rs      = $db->CacheSelectLimit($cond,$limite);
		$retorno = $rs->GetRows();
	
	}

	
    if($retorno){
        foreach($retorno as $clave=>$valor){

			$ciudad_url    = $Localidades[$valor['localidad']]['url'];;
			// $provincia_url = $Provincias[$Localidades[$valor['localidad']]['provincia']]['url'];
            // $href = URL."/$provincia_url/$ciudad_url/{$valor['fam_url']}/".$valor['urlamigable'].'.html';
            $href = URL."/$ciudad_url/{$valor['fam_url']}/".$valor['urlamigable'].'.html';
            $retorno[$clave]['href'] = $href;
        }
    }


    return $retorno;
}




function busco_publicacion($cadena_busqueda='',$id=0){
    global $db, $idioma_elegido,$idioma_default;
    if (!empty($cadena_busqueda)) {
        $idioma_elegido = $_SESSION['idioma'];

        $cond  = "select * from publicaciones where ( urlamigable1='$cadena_busqueda' or urlamigable2='$cadena_busqueda' 
                or urlamigable3='$cadena_busqueda' or urlamigable4='$cadena_busqueda' or urlamigable5='$cadena_busqueda' ) and activo=1";
        $rs    = $db->CacheSelectLimit($cond,1);
        $Pub   = $rs->FetchRow();

    } else {
        settype($id, 'integer');
        $cond  = "select * from publicaciones where id='$id' and publicaciones.activo=1";
        $rs    = $db->CacheSelectLimit($cond,1);
        $Pub   = $rs->FetchRow();
    }

    
    if (!empty($Pub)) {
        $id       = $Pub['id'];
        $lecturas = $Pub['lecturas']+1;
        $sql      = "update publicaciones set lecturas='$lecturas' where id='$id'";
        $ok       = $db->CacheExecute($sql);
        
        $Pub['Categoria'] = busco_categoria_por_id($Pub['categoria_id']);

        if ( empty($Pub['titulo'.$idioma_elegido])    ) { $Pub['titulo']    = $Pub['titulo'.$idioma_default];    } else { $Pub['titulo']    = $Pub['titulo'.$idioma_elegido];    }
        if ( empty($Pub['thumbs'.$idioma_elegido])    ) { $Pub['thumbs']    = $Pub['thumbs'.$idioma_default];    } else { $Pub['thumbs']    = $Pub['thumbs'.$idioma_elegido];    }
        if ( empty($Pub['copete'.$idioma_elegido])    ) { $Pub['copete']    = $Pub['copete'.$idioma_default];    } else { $Pub['copete']    = $Pub['copete'.$idioma_elegido];    }
        if ( empty($Pub['contenido'.$idioma_elegido]) ) { $Pub['contenido'] = $Pub['contenido'.$idioma_default]; } else { $Pub['contenido'] = $Pub['contenido'.$idioma_elegido]; }
        if ( empty($Pub['urlamigable'.$idioma_elegido]) ) { $Pub['urlamigable'] = $Pub['urlamigable'.$idioma_default]; } else { $Pub['urlamigable'] = $Pub['urlamigable'.$idioma_elegido]; }
        $Pub['titulo']    = htmlspecialchars_decode(stripslashes($Pub['titulo']),ENT_QUOTES);
        $Pub['copete']    = htmlspecialchars_decode(stripslashes($Pub['copete']),ENT_QUOTES);
        $Pub['contenido'] = htmlspecialchars_decode(stripslashes($Pub['contenido']),ENT_QUOTES);


        $keywords    = iif(!empty($Pub['keywords'.$idioma_elegido]   ), $Pub['keywords'.$idioma_elegido]   , $Pub['keywords'.$idioma_default]   );            
        $Pub['descripcion'] = iif(!empty($Pub['descripcion'.$idioma_elegido]   ), $Pub['descripcion'.$idioma_elegido]   , $Pub['descripcion'.$idioma_default]   );                    

        $Pub['keywords']    = $keywords;

/*
        if (empty($Pub['thumbs'])) {
            $Pub['thumbs'] = URL.'/archivos/images/nofoto.jpg';
        }
*/

        //-- Tiene galeria de fotos?
        $cond  = "select id,nombre1 as nombre, archivo from galerias_fotos where galeria_id = '{$Pub['id']}' and activo = '1' order by orden ASC";
        $rs    = $db->CacheExecute($cond);
        $Pub['galeria_fotos']  = $rs->GetRows();


    } else {
        $Pub = array();
    }
    
    return $Pub;
}



function ordenar_array() {
/* 
// EJEMPLO DE USO: 
// Otra manera de declarar un array bidimensional de estos... 
$array_a_ordenar = array( 
                 0 => array('campo1' => 'patatas', 'campo2' => 1, 'campo3' => 'kkkk'), 
                 1 => array('campo1' => 'coles', 'campo2' => 3, 'campo3' => 'aaaa'), 
                 2 => array('campo1' => 'tomates', 'campo2' => 1, 'campo3' => 'zzzz'), 
                 3 => array('campo1' => 'peras', 'campo2' => 7, 'campo3' => 'hhhh'), 
                 4 => array('campo1' => 'tomates', 'campo2' => 4, 'campo3' => 'bbbb'), 
                 5 => array('campo1' => 'aguacates', 'campo2' => 3, 'campo3' => 'yyyy'), 
         ); 
 
$array_ordenadito = ordenar_array($array_a_ordenar, 'campo2', SORT_DESC, 'campo1', SORT_DESC) or die('<br>ERROR!<br>'); 
$array_ordenadito2 = ordenar_array($array_a_ordenar, 'campo3', SORT_DESC, 'campo2', SORT_DESC, 'campo1', SORT_ASC ) or die('<br>ERROR!<br>');  
*/
    
  $n_parametros = func_num_args(); // Obenemos el número de parámetros 
  if ($n_parametros<3 || $n_parametros%2!=1) { // Si tenemos el número de parametro mal... 
    return false; 
  } else { // Hasta aquí todo correcto...veamos si los parámetros tienen lo que debe ser... 
    $arg_list = func_get_args(); 
 
    if (!(is_array($arg_list[0]) && is_array(current($arg_list[0])))) { 
      return false; // Si el primero no es un array...MALO! 
    } 
    for ($i = 1; $i<$n_parametros; $i++) { // Miramos que el resto de parámetros tb estén bien... 
      if ($i%2!=0) {// Parámetro impar...tiene que ser un campo del array... 
        if (!array_key_exists($arg_list[$i], current($arg_list[0]))) { 
          return false; 
        } 
      } else { // Par, no falla...si no es SORT_ASC o SORT_DESC...a la calle! 
        if ($arg_list[$i]!=SORT_ASC && $arg_list[$i]!=SORT_DESC) { 
          return false; 
        } 
      } 
    } 
    $array_salida = $arg_list[0]; 
 
    // Una vez los parámetros se que están bien, procederé a ordenar... 
    $a_evaluar = "foreach (\$array_salida as \$fila){\n"; 
    for ($i=1; $i<$n_parametros; $i+=2) { // Ahora por cada columna... 
      $a_evaluar .= "  \$campo{$i}[] = \$fila['$arg_list[$i]'];\n"; 
    } 
    $a_evaluar .= "}\n"; 
    $a_evaluar .= "array_multisort(\n"; 
    for ($i=1; $i<$n_parametros; $i+=2) { // Ahora por cada elemento... 
      $a_evaluar .= "  \$campo{$i}, SORT_REGULAR, \$arg_list[".($i+1)."],\n"; 
    } 
    $a_evaluar .= "  \$array_salida);"; 
    // La verdad es que es más complicado de lo que creía en principio... :) 
 
    eval($a_evaluar); 
    return $array_salida; 
  } 
} 


/* Para el menu de familias de productos */
function crearArbol($parent_id = 0, $nivel = 0){

    global $db;
    $nivel++; 
    /*Armar query*/
    $sql  = "select * from familias where parent_id = '$parent_id' order by orden ASC";
	$rs   = $db->CacheExecute($sql);
	$Familias 	= $rs->GetRows();

    if($Familias){
        /*Recorrer todos las entradas */
        foreach($Familias as $key => $value) {
            $Familias[$key]['nivel'] = $nivel;
            $Familias[$key]['child'] = crearArbol($value['id'], $nivel);
        }
    }    

    $Resultado = array();
    $a = 0;
    foreach ($Familias as $n1) {
        $Resultado[$a]['id']        = $n1['id'];
        $Resultado[$a]['parent_id'] = $n1['parent_id'];
        $Resultado[$a]['nombre1']   = $n1['nombre1'];
        $Resultado[$a]['nivel']     = $n1['nivel'];
        $Resultado[$a]['orden']     = $n1['orden'];
        $Resultado[$a]['de']        = $n1['de'];        
        $Resultado[$a]['activo']    = $n1['activo'];
        $Resultado[$a]['urlamigable1']    = $n1['urlamigable1'];
        $Resultado[$a]['thumbs1']    = $n1['thumbs1'];
        
        if (!empty($n1['child'])) {
            foreach ($n1['child'] as $n2) {
                $a++;
                $Resultado[$a]['id']        = $n2['id'];
                $Resultado[$a]['parent_id'] = $n2['parent_id'];
                $Resultado[$a]['nombre1']   = $n2['nombre1'];
                $Resultado[$a]['nivel']     = $n2['nivel'];
                $Resultado[$a]['orden']     = $n2['orden'];
                $Resultado[$a]['de']        = $n2['de'];
                $Resultado[$a]['activo']    = $n2['activo'];
                $Resultado[$a]['urlamigable1']    = $n2['urlamigable1'];
                $Resultado[$a]['thumbs1']    = $n2['thumbs1'];

                if (!empty($n2['child'])) {
                    foreach ($n2['child'] as $n3) {
                        $a++;
                        $Resultado[$a]['id']        = $n3['id'];
                        $Resultado[$a]['parent_id'] = $n3['parent_id'];
                        $Resultado[$a]['nombre1']   = $n3['nombre1'];
                        $Resultado[$a]['nivel']     = $n3['nivel'];
                        $Resultado[$a]['orden']     = $n3['orden'];
                        $Resultado[$a]['de']        = $n3['de'];
                        $Resultado[$a]['activo']    = $n3['activo'];
                        $Resultado[$a]['urlamigable1']    = $n3['urlamigable1'];
                        $Resultado[$a]['thumbs1']    = $n3['thumbs1'];
                        
                        if (!empty($n3['child'])) {
                            foreach ($n3['child'] as $n4) {
                                $a++;
                                $Resultado[$a]['id']        = $n4['id'];
                                $Resultado[$a]['parent_id'] = $n4['parent_id'];
                                $Resultado[$a]['nombre1']   = $n4['nombre1'];
                                $Resultado[$a]['nivel']     = $n4['nivel'];
                                $Resultado[$a]['orden']     = $n4['orden'];
                                $Resultado[$a]['de']        = $n4['de'];
                                $Resultado[$a]['activo']    = $n4['activo'];
                                $Resultado[$a]['urlamigable1']    = $n4['urlamigable1'];
                                $Resultado[$a]['thumbs1']    = $n4['thumbs1'];
                            }
                        } else {
                            $a++;
                        }
                        
                        
                    }
                } else {
                    $a++;
                }
            
            }
            
        } else {
            $a++;
        }
        
        
    }

    return $Resultado;    
}  



/* crea la dependencia de familias de un producto dado, pasandole el id de la familia a la que pertenece */
function url_producto($familia_id = 0){

    global $db;
    $nivel++; 
    /*Armar query*/
    $sql  = "select * from familias where id = '$familia_id'";
	$rs   = $db->CacheSelectLimit($sql,1);
    $contador = 5;
	$dependencias[$contador] = $rs->FetchRow();
    $parent_id = $dependencias[$contador]['parent_id'];
    while ($parent_id != 0) {
        $contador = $contador-1;
        $familia_id = $parent_id;
        $sql  = "select * from familias where id = '$familia_id'";
    	$rs   = $db->CacheSelectLimit($sql,1);
    	$dependencias[$contador] = $rs->FetchRow();
        $parent_id = $dependencias[$contador]['parent_id'];
    }
    sort($dependencias);
    $depende = array();
    $url = $ruta = '';
    foreach($dependencias  as $clave => $valor){
        
        $depende[$clave]['urlamigable'] = iif(!empty($valor['urlamigable'.$idioma_elegido]),$valor['urlamigable'.$idioma_elegido],$valor['urlamigable1']);
        $ruta.= "/{$depende[$clave]['urlamigable']}";
    }
    $url = URL.$ruta;
    return $url;    
}  








/* Para el menu de familias de productos FRONTEND */
function MenuFamilias($parent_id = 0, $cuales=''){

    global $db,$ruta;
    //$nivel++; 
    /*Armar query*/
	$condicion_provincia = '';
	$condicion_ciudad    = '';
	$condicion_familia   = '';
	if($_SESSION['filtro']['provincia']['id']>0){
		$condicion_provincia = " and productos.provincia='{$_SESSION['filtro']['provincia']['id']}'";
		if($_SESSION['filtro']['ciudad']['id']>0){
			$condicion_ciudad = " and productos.localidad='{$_SESSION['filtro']['ciudad']['id']}'";
		}
	}
	
	
 
    $sql  = "select id,nombre1,urlamigable1,thumbs1 from familias where parent_id = '$parent_id' and activo=1 order by orden ASC";
	$rs   = $db->CacheExecute($sql);
	$Familias 	= $rs->GetRows();

    if($Familias){
        /*Recorrer todos las entradas */
        foreach($Familias as $key => $value) {
            $sql  = "select id,nombre1,urlamigable1,thumbs1 from familias where parent_id = '{$value['id']}'  and activo=1 order by orden ASC";
            $rs   = $db->CacheExecute($sql);
            $z   = $rs->GetRows();
            $Familias[$key]['child'] = $z;
        }
    }

	$href = URL;
	if($_SESSION['filtro']['provincia']['id']>0){
		$href.='/'.$_SESSION['filtro']['provincia']['url'];
		
		if($_SESSION['filtro']['ciudad']['id']>0){
			$href.='/'.$_SESSION['filtro']['ciudad']['url'];
		}
	}
	
	
	
    $x = array();
    foreach($Familias as $clave=>$valor){
        $x[$clave]['id']      = $valor['id'];
        $x[$clave]['nombre']  = $valor['nombre1'];
        $x[$clave]['href']    = $href.'/'.$valor['urlamigable1'];
        $x[$clave]['thumbs1'] = $valor['thumbs1'];        
        $x[$clave]['url']     = $valor['urlamigable1'];

		$sql = "select count(id) as cuantos from productos 
				where activo=1 $condicion_provincia $condicion_ciudad and familia_id='{$valor['id']}'";
		$rs  = $db->CacheSelectLimit($sql,1);
		$z   = $rs->FetchRow();
		$x[$clave]['cuantos']  = $z['cuantos'];

        
        if (!empty($valor['child'])){
            
            foreach($valor['child'] as $clave5=>$valor5){
                $x[$clave]['child'][$clave5]['id']     = $valor5['id'];
                $x[$clave]['child'][$clave5]['nombre'] = $valor5['nombre1'];
                // $x[$clave]['child'][$clave5]['href']   = $x[$clave]['href'].'/'.$valor5['urlamigable1'];
                $x[$clave]['child'][$clave5]['href']   = $href.'/'.$valor5['urlamigable1'];
                $x[$clave]['child'][$clave5]['url']   = $valor5['urlamigable1'];
                $x[$clave]['child'][$clave5]['thumbs1']   = $valor5['thumbs1'];
				
				$sql = "select count(id) as cuantos from productos where activo=1 $condicion_provincia $condicion_ciudad and familia_id={$valor5['id']}";
				$rs  = $db->CacheSelectLimit($sql,1);
				$z   = $rs->FetchRow();
				$x[$clave]['child'][$clave5]['cuantos']  = $z['cuantos'];

            }
        }

    }
    
	if(empty($cuales)){
		foreach($x as $clave=>$valor){
			$parent='no';		
			if(isset($valor['child'])){
				
				foreach($valor['child'] as $clave2=>$valor2){
					if($valor2['cuantos']==0){
						unset( $x[$clave]['child'][$clave2]);
					} else { $parent='si';}
				}
			}
			
			if($parent=='no' and $valor['cuantos']==0){
				unset($x[$clave]);
			}
			
			
		}
	}	
    return $x;    
}  

function ObtieneFamiliaPorURL($url=''){
    global $db;

    $sql  = "select * from familias where urlamigable1 = '$url' ";
    $rs   = $db->CacheSelectLimit($sql,1);
    $Familia    = $rs->FetchRow();
    return $Familia;    

}  


function ObtieneFamilia($familia_id = 0,$cual='fam'){
    global $db;
    // $cual 'fam' o 'sub'
    /*Armar query*/
    $sql  = "select * from familias where id = '$familia_id' ";
	$rs   = $db->CacheSelectLimit($sql,1);
	$Familia 	= $rs->FetchRow();

    if($Familia['parent_id']>0 and $cual=='fam'){
        $sql  = "select * from familias where id = '{$Familia['parent_id']}' ";
        $rs   = $db->CacheSelectLimit($sql,1);
        $Familia    = $rs->FetchRow();
    }
    return $Familia;    

}  


function ObtieneUrlFamilias($familia_id = 0){
    global $db;

    $p_subfam   = ObtieneFamilia($familia_id,'sub');
    $url = $p_subfam['urlamigable1'];
    if ($p_subfam['parent_id']>0){
        $p_subfam   = ObtieneFamilia($p_subfam['parent_id'],'sub');
        $url = $p_subfam['urlamigable1'].'/'.$url;
    }
    
    return $url;
}  





function ObtieneProductos($familia_id = 0){
    global $db;
    $idioma_elegido = $_SESSION['idioma'];
    /*Armar query*/
    $sql  = "select * from productos where familia1_id = '$familia_id' or  familia2_id = '$familia_id' or  familia3_id = '$familia_id'";
	$rs   = $db->CacheExecute($sql);
	$Productos 	= $rs->GetRows();

    foreach($Productos as $clave => $valor) {
        
        $Productos[$clave]['titulo'] = iif(!empty($valor['titulo'.$idioma_elegido]),$valor['titulo'.$idioma_elegido],$valor['titulo1']);
        $Productos[$clave]['thumbs'] = iif(!empty($valor['thumbs'.$idioma_elegido]),$valor['thumbs'.$idioma_elegido],$valor['thumbs1']);
        $Productos[$clave]['contenido'] = iif(!empty($valor['contenido'.$idioma_elegido]),$valor['contenido'.$idioma_elegido],$valor['contenido1']);
        $Productos[$clave]['urlamigable'] = iif(!empty($valor['urlamigable'.$idioma_elegido]),$valor['urlamigable'.$idioma_elegido],$valor['urlamigable1']);
        $Productos[$clave]['titulo'] = htmlspecialchars_decode(stripslashes($Productos[$clave]['titulo']),ENT_QUOTES);
        $Productos[$clave]['contenido'] = htmlspecialchars_decode(stripslashes($Productos[$clave]['contenido']),ENT_QUOTES);


    }
    return $Productos;
}  


function accede_a_familias($familia){
    $familia = unserialize($familia);

    $accede = false;
    
    if(empty($familia)) { 
        $accede = true;                       
    } else {
//      pr($familia);
        $accede = false;
        if (isset($_SESSION['login']['grupos'])) {
            foreach($familia as $grupos) {
//                pr($grupos);                                
                $familia_grupo = $grupos['grupo_id'];
//              pr($familia_grupo);

                foreach($_SESSION['login']['grupos'] as $mis_grupos){
//                  pr($mis_grupos); 
                    $usuario_grupo = $mis_grupos['grupo_id'];
//                  pr($usuario_grupo);
                    if ($familia_grupo === $usuario_grupo) {
                        $accede = true;
                        break;
                    } 
                }
                if ($accede == true){  break; }                                
            }
                            
        }
    }
    
    return $accede;
}


function accede_a_productos($producto){
    $producto = unserialize($producto);

    $accede = false;
    
    if(empty($producto)) { 
        $accede = true;                       
    } else {
        $accede = false;
        if (isset($_SESSION['login']['grupos'])) {
            foreach($producto as $grupos) {
                $producto_grupo = $grupos['grupo_id'];

                foreach($_SESSION['login']['grupos'] as $mis_grupos){
                    $usuario_grupo = $mis_grupos['grupo_id'];
                    if ($producto_grupo === $usuario_grupo) {
                        $accede = true;
                        break;
                    } 
                }

                if ($accede == true){  break; }                                
            }
                            
        }
    }
    
    return $accede;
}


function slide($slide_id=0){
    if ($slide_id==0) { return '';}

    global $db;
    $cond  = "select * from slides where activo=1 and id='$slide_id'";
    $rs    = $db->CacheSelectLimit($cond,1);
    $x     = $rs->FetchRow();
    if (!$x) { return '';}    
    $xdata = unserialize($x['data']);   
    $ancho = $x['ancho'];
    $alto  = $x['alto'];
    
    $x      = 0;
    $slides = array();
    foreach($xdata as $value) {
		$x = rand();
        $slides[$x]['imagen'] = $value['imagen'];
        $slides[$x]['posicion_texto'] = $value['posicion_texto'];
        $slides[$x]['texto'] = html_entity_decode($value['texto']);
        $slides[$x]['href'] = $value['href'];
        //$x++;
    }

    ksort($slides);

	$return_slide= "	
		<div id='myCarousel' class='carousel slide hidden-phone'>
			<ol class='carousel-indicators'>";
			foreach($slides as $clave=>$s) { 
				$activo = iif($clave==0,'active','');
				$return_slide.= "<li data-target='#myCarousel' data-slide-to='$clave' class='$activo'></li>";
			}   
	$return_slide.= "				
			</ol>
			<!-- Carousel items -->
			<div class='carousel-inner'>";
			foreach($slides as $clave=>$s) { 
				$activo = iif($clave==0,'active','');
				$imagen= "<img src='{$s['imagen']}' alt='{$s['texto']} aaa'>";            
				$return_slide.= "<div class='item $activo'><a href='{$s['href']}' >$imagen</a>";
				if(!empty($s['texto'])){
					$return_slide.="<div class='carousel-caption'><p>{$s['texto']}</p></div>";
				}
				$return_slide.= "</div>";
				
			}   
	$return_slide.= "			
			</div>
			<!-- Carousel nav -->
			<a class='carousel-control left' href='#myCarousel' data-slide='prev'>&lsaquo;</a>
			<a class='carousel-control right' href='#myCarousel' data-slide='next'>&rsaquo;</a>
		</div>
		<script>
		$('.carousel').carousel();
		</script>
		
		";	

		
    return $return_slide;
}


//----------------------------------------------------------------------------------------
//                                   Devuelve un array con los alojamientos que administro
//----------------------------------------------------------------------------------------
function mis_alojamientos($id=0,$gestion=0){
	global $db;
	$gestiono = iif( $gestion==1, " or gestionamos='1'", '');
	if($id>0){
		$sql = "select p.id, p.thumbs, p.titulo, p.urlamigable, p.resumen, p.activo, p.localidad, familias.urlamigable1, familias.nombre1 
				from productos as p
				left join familias on p.familia_id = familias.id
				where p.id='$id' and p.ficha_interna='1'";
		$rs  = $db->CacheSelectLimit($sql,1);
		$aloj_ppal = $rs->GetRows();
		
		$sql = "select p.id, p.thumbs, p.titulo, p.urlamigable, p.resumen, p.activo, p.localidad, familias.urlamigable1, familias.nombre1 
				from productos as p
				left join familias on p.familia_id = familias.id
				where p.parent_id='$id'  and p.ficha_interna='1' $gestiono";
		$rs  = $db->cacheExecute($sql);
		$otros = $rs->GetRows();
		if($otros){
			$MisAlojamientos = array_merge($aloj_ppal,$otros);
		} else {
			$MisAlojamientos = $aloj_ppal;
		}
	
	} else {
		$MisAlojamientos = array();
	}
	return $MisAlojamientos;
	die();
}


//----------------------------------------------------------------------------------------
//                                        Devuelve un array con los alojamientos similares
//----------------------------------------------------------------------------------------
function alojamientos_similares($familia_id=0, $producto_id=0){
	global $db, $Localidades;

	if($familia_id>0){
		$sql = "select p.id, p.thumbs, p.titulo, p.urlamigable, p.resumen, p.localidad, familias.urlamigable1, familias.nombre1 
				from productos as p
				left join familias on p.familia_id = familias.id
				where p.familia_id='$familia_id' and p.id!='$producto_id' and p.activo=1  and p.ficha_interna='1' order by rand()";
		$rs  = $db->CacheSelectLimit($sql,20);
		$Similares = $rs->GetRows();
	} else {
		$Similares = array();
	}
	foreach($Similares as $clave=>$valor) {
		$ciudad_url    = $Localidades[$valor['localidad']]['url'];;
        $href = URL."/$ciudad_url/{$valor['urlamigable1']}/".$valor['urlamigable'].'.html';
	
		$Similares[$clave]['href'] = $href;
	}
	
	return $Similares;
	die();
}

//----------------------------------------------------------------------------------------
//                                        Devuelve un array con los ultimos alojamientos
//----------------------------------------------------------------------------------------
function ultimos_alojamientos($cuantos=10){
	global $db, $Localidades;

	$sql = "select p.id, p.thumbs, p.titulo, p.urlamigable, p.resumen, p.localidad, familias.urlamigable1, familias.nombre1 
			from productos as p
			left join familias on p.familia_id = familias.id
			where p.activo=1 and p.ficha_interna=1 order by p.id DESC";
			
	$rs  = $db->CacheSelectLimit($sql,$cuantos);
	$Ultimos = $rs->GetRows();

	foreach($Ultimos as $clave=>$valor) {
		$ciudad_url    = $Localidades[$valor['localidad']]['url'];;
        $href = URL."/$ciudad_url/{$valor['urlamigable1']}/".$valor['urlamigable'].'.html';
	
		$Ultimos[$clave]['href'] = $href;
	}
	
	return $Ultimos;
	die();
}


function xURLcl($url){
        $context = stream_context_create(array(
            'http' => array(
              'method'  => 'GET',
              'timeout' => 5),));
        $ret = file_get_contents('http://xurl.cl/api.php?url='.urlencode($url), false, $context);
        return $ret;
}


function get_gravatar($email='',$default='',$size=50){
	//--------------------------------------------------------------------------
	//                          Obtiene el avatar del usuario desde Gravatar.com
	//--------------------------------------------------------------------------
	if(empty($default)){
		$default = 'mm';
	} else {
		$default = urlencode(strtolower(trim($default)));
	}
	
	if(empty($email)){
		return $default;
	} else {
		$email = md5(strtolower(trim($email)));
		$grav_url = "http://www.gravatar.com/avatar/$email?d=$default&s=$size&r=pg";
		return $grav_url;
	}
		
}


function diff_date($desde=0,$hasta=0,$formato='mkt'){
	//---------------------------------------------------- 
	// Calcula la diferencia de fechas
	//---------------------------------------------------- 
	if($formato=='aaaa/mm/dd'){
	
		list($ano,$mes,$dia) = explode('/',$desde);
		$desde = mktime(0,0,0,$mes,$dia,$ano);
		list($ano,$mes,$dia) = explode('/',$hasta);
		$hasta = mktime(0,0,0,$mes,$dia,$ano);
		
	} elseif($formato=='dd/mm/aaaa'){
	
		list($dia,$mes,$ano) = explode('/',$desde);
		$desde = mktime(0,0,0,$mes,$dia,$ano);
		list($dia,$mes,$ano) = explode('/',$hasta);
		$hasta = mktime(0,0,0,$mes,$dia,$ano);
		
	} elseif($formato=='mm/dd/aaaa'){
	
		list($mes,$dia,$ano) = explode('/',$desde);
		$desde = mktime(0,0,0,$mes,$dia,$ano);
		list($mes,$dia,$ano) = explode('/',$hasta);
		$hasta = mktime(0,0,0,$mes,$dia,$ano);
	}

	$dif = ($hasta - $desde	)/(60*60*24);
	return intval($dif);
/*
	$fdesde = date("Y/m/d",$desde);	
	$fhasta = date("Y/m/d",$hasta);	

	
	$datetime1 = date_create($fdesde);
	$datetime2 = date_create($fhasta);
	$interval = date_diff($datetime1, $datetime2);
	
	//echo $interval->format('%a');	
	return $interval->format('%a');	
*/


}


function array_to_json( $array ){

    if( !is_array( $array ) ){
        return false;
    }

    $associative = count( array_diff( array_keys($array), array_keys( array_keys( $array )) ));
    if( $associative ){

        $construct = array();
        foreach( $array as $key => $value ){

            // We first copy each key/value pair into a staging array,
            // formatting each key and value properly as we go.

            // Format the key:
            if( is_numeric($key) ){
                $key = "key_$key";
            }
            $key = "\"".addslashes($key)."\"";

            // Format the value:
            if( is_array( $value )){
                $value = array_to_json( $value );
            } else if( !is_numeric( $value ) || is_string( $value ) ){
                $value = "\"".addslashes($value)."\"";
            }

            // Add to staging array:
            $construct[] = "$key: $value";
        }

        // Then we collapse the staging array into the JSON form:
        $result = "{ " . implode( ", ", $construct ) . " }";

    } else { // If the array is a vector (not associative):

        $construct = array();
        foreach( $array as $value ){

            // Format the value:
            if( is_array( $value )){
                $value = array_to_json( $value );
            } else if( !is_numeric( $value ) || is_string( $value ) ){
                $value = "'".addslashes($value)."'";
            }

            // Add to staging array:
            $construct[] = $value;
        }

        // Then we collapse the staging array into the JSON form:
        $result = "[ " . implode( ", ", $construct ) . " ]";
    }

    return $result;
}


?>